
package com.thor.palmmall.api.statement;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.thor.commons.entity.StandardEntity;
import com.thor.commons.entity.UCN;
import com.thor.palmmall.api.elecharges.PayMethod;

/**
 * @author:liyang
 * @time:2017年8月16日 上午10:59:27
 * @since:1.0
 */
public class AStatementPayBill extends StandardEntity {
  private static final long serialVersionUID = 1L;
  private String billNumber;

  private BigDecimal amount;
  private AStatementPayBillState state;
  private String transactioNo;
  private PayMethod method;
  private String remark;
  private Date actionTime;
  private String buyerLogonId;
  private String sellerEmail;
  private BigDecimal receiptAmount;
  private BigDecimal invoiceAmount;
  private BigDecimal buyerPayAmount;
  private String errMsg;
  private String notifyFlag;
  private String alipayPublicKey;
  private UCN paymentType;
  private String billId;// 海鼎订单id
  private String syncedErrorMsg;// 订单同步失败原因
  private String productName;// 商品名称
  private List<AStatementPayBillDetail> details;
  // 银联商务PC回调验证签名专用
  private String verifyFilePath;
  private String signFilePath;
  private String signFilePwd;
  private String signCertType;

  private BigDecimal commissionCharge;

  /** 已尝试次数 */
  private int tryCount = 0;

  /** 最大尝试次数 */
  private int maxCount = 5;

  /**
   * 验证证书路径
   * 
   * @return 验证证书路径
   */
  public String getVerifyFilePath() {
    return verifyFilePath;
  }

  public void setVerifyFilePath(String verifyFilePath) {
    this.verifyFilePath = verifyFilePath;
  }

  /**
   * 获取签名证书路径
   * 
   * @return 签名证书路径
   */
  public String getSignFilePath() {
    return signFilePath;
  }

  public void setSignFilePath(String signFilePath) {
    this.signFilePath = signFilePath;
  }

  /**
   * 获取签名证书密码
   * 
   * @return 签名证书密码
   */
  public String getSignFilePwd() {
    return signFilePwd;
  }

  public void setSignFilePwd(String signFilePwd) {
    this.signFilePwd = signFilePwd;
  }

  /**
   * 获取签名证书类型
   * 
   * @return 获取签名证书类型
   */
  public String getSignCertType() {
    return signCertType;
  }

  public void setSignCertType(String signCertType) {
    this.signCertType = signCertType;
  }

  /** 充值单号 */
  public String getBillNumber() {
    return billNumber;
  }

  public void setBillNumber(String billNumber) {
    this.billNumber = billNumber;
  }

  /** 金额 */
  public BigDecimal getAmount() {
    return amount;
  }

  public void setAmount(BigDecimal amount) {
    this.amount = amount;
  }

  /** 充值单状态 */
  public AStatementPayBillState getState() {
    return state;
  }

  public void setState(AStatementPayBillState state) {
    this.state = state;
  }

  /** 充值流水号 */
  public String getTransactioNo() {
    return transactioNo;
  }

  public void setTransactioNo(String transactioNo) {
    this.transactioNo = transactioNo;
  }

  /** 支付方式 */
  public PayMethod getMethod() {
    return method;
  }

  public void setMethod(PayMethod method) {
    this.method = method;
  }

  /** 备注 */
  public String getRemark() {
    return remark;
  }

  public void setRemark(String remark) {
    this.remark = remark;
  }

  /** 操作时间 */
  public Date getActionTime() {
    return actionTime;
  }

  public void setActionTime(Date actionTime) {
    this.actionTime = actionTime;
  }

  /** 支付者账户 */
  public String getBuyerLogonId() {
    return buyerLogonId;
  }

  public void setBuyerLogonId(String buyerLogonId) {
    this.buyerLogonId = buyerLogonId;
  }

  /** 销售者账户 */
  public String getSellerEmail() {
    return sellerEmail;
  }

  public void setSellerEmail(String sellerEmail) {
    this.sellerEmail = sellerEmail;
  }

  /** 实收金额 */
  public BigDecimal getReceiptAmount() {
    return receiptAmount;
  }

  public void setReceiptAmount(BigDecimal receiptAmount) {
    this.receiptAmount = receiptAmount;
  }

  /** 开票金额 */
  public BigDecimal getInvoiceAmount() {
    return invoiceAmount;
  }

  public void setInvoiceAmount(BigDecimal invoiceAmount) {
    this.invoiceAmount = invoiceAmount;
  }

  /** 付款金额 */
  public BigDecimal getBuyerPayAmount() {
    return buyerPayAmount;
  }

  public void setBuyerPayAmount(BigDecimal buyerPayAmount) {
    this.buyerPayAmount = buyerPayAmount;
  }

  /** 失败原因 */
  public String getErrMsg() {
    return errMsg;
  }

  public void setErrMsg(String errMsg) {
    this.errMsg = errMsg;
  }

  /** 支付平台回调状态 success ＝ 成功，failed ＝ 失败 */
  public String getNotifyFlag() {
    return notifyFlag;
  }

  public void setNotifyFlag(String notifyFlag) {
    this.notifyFlag = notifyFlag;
  }

  public List<AStatementPayBillDetail> getDetails() {
    return details;
  }

  public void setDetails(List<AStatementPayBillDetail> details) {
    this.details = details;
  }

  public String getAlipayPublicKey() {
    return alipayPublicKey;
  }

  public void setAlipayPublicKey(String alipayPublicKey) {
    this.alipayPublicKey = alipayPublicKey;
  }

  public UCN getPaymentType() {
    return paymentType;
  }

  public void setPaymentType(UCN paymentType) {
    this.paymentType = paymentType;
  }

  public String getBillId() {
    return billId;
  }

  public void setBillId(String billId) {
    this.billId = billId;
  }

  public String getSyncedErrorMsg() {
    return syncedErrorMsg;
  }

  public void setSyncedErrorMsg(String syncedErrorMsg) {
    this.syncedErrorMsg = syncedErrorMsg;
  }

  public String getProductName() {
    return productName;
  }

  public void setProductName(String productName) {
    this.productName = productName;
  }

  /**
   * 获取手续费
   * 
   * @return 缴款手续费
   */
  public BigDecimal getCommissionCharge() {
    return commissionCharge;
  }

  public void setCommissionCharge(BigDecimal commissionCharge) {
    this.commissionCharge = commissionCharge;
  }

  /**
   * 获取尝试次数
   * 
   * @return
   */
  public int getTryCount() {
    return tryCount;
  }

  public void setTryCount(int tryCount) {
    this.tryCount = tryCount;
  }

  /**
   * 获取最大尝试次数
   */
  public int getMaxCount() {
    return maxCount;
  }

  public void setMaxCount(int maxCount) {
    this.maxCount = maxCount;
  }

}
